/*
 * 文  件   名: UserFriendConvert.java
 * 版         本: docrepository-web(Anttribe). All rights reserved
 * 描         述: <描述>
 * 修   改  人: zhaoyong
 * 修改时 间: 2014年11月20日
 */
package org.anttribe.docrepository.web.friend.convert;

import java.util.ArrayList;
import java.util.List;

import org.anttribe.docrepository.friend.domain.UserFriend;
import org.anttribe.docrepository.user.domain.UserInfo;
import org.anttribe.docrepository.web.friend.vo.UserFriendVo;
import org.anttribe.saturn.common.utils.ObjectUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;

/**
 * UserFriend与Vo对象的转换器
 * 
 * @author zhaoyong
 * @version 2014年11月20日
 */
public class UserFriendConvert
{
    /**
     * 将BO对象转换成VO
     * 
     * @param bo BO对象
     * @return UserFriendVo
     * @see [类、类#方法、类#成员]
     */
    public UserFriendVo convertToVo(UserFriend bo)
    {
        UserFriendVo vo = null;
        if (!ObjectUtils.isNullOrNone(bo))
        {
            vo = new UserFriendVo();
            vo.setUserFriendId(bo.getUserFriendId());
            vo.setCreateTime(bo.getCreateTime());
            vo.setFriendName(bo.getFriendName());
            
            UserInfo friend = bo.getFriend();
            if (!ObjectUtils.isNullOrNone(friend))
            {
                vo.setFriendId(friend.getUserId());
                // 好友名称处理
                if (StringUtils.isEmpty(vo.getFriendName()))
                {
                    if (!StringUtils.isEmpty(friend.getUsername()))
                    {
                        vo.setFriendName(friend.getUsername());
                    }
                }
            }
            
            UserInfo owner = bo.getOwner();
            if (!ObjectUtils.isNullOrNone(owner))
            {
                vo.setOwnerId(owner.getUserId());
            }
        }
        return vo;
    }
    
    /**
     * 将BO对象转换成VO
     * 
     * @param boList List<UserFriend>
     * @return List<UserFriendVo>
     */
    public List<UserFriendVo> convertToVo(List<UserFriend> boList)
    {
        List<UserFriendVo> voList = null;
        if (!CollectionUtils.isEmpty(boList))
        {
            voList = new ArrayList<UserFriendVo>();
            for (UserFriend bo : boList)
            {
                voList.add(convertToVo(bo));
            }
        }
        return voList;
    }
}